О сопровождении сайта

Вне зависимости от способа обновления, и сохранности данных ради, создавайте резервные копии до осуществления изменений в системе. А также проверяйте созданные копии на работоспособность.

Развитие WordPress (как и создание всего прекрасного) — результат деятельности замечательных людей. Недавно, стал доступен свежий выпуск. Недавно, ознакомился с интересными веб-сервисами и дополнениями для сайта. О изменениях в свежей версии WordPress можете узнать на странице блога: https://wordpress.org/news/ Или после успешного обновления вашего сайта. А эта заметка о создании резервной копии сайта, некоторых дополнениях и хороших веб-сервисах.

Пользуясь веб-сервисом Яндекс.Облако, можете создать снимок диска согласно инструкции: https://cloud.yandex.ru/docs/compute/operations/disk-control/create-snapshot#prepare

Создание резервной копии сайта и базы данных сайта

Останавливаем работу веб-сервера Apache 2 и Nginx:

sudo systemctl stop nginx.service
sudo systemctl stop apache2.service

Создаем копию файлов сайта в домашней директории пользователя:

sudo cp -r /var/www/html/* ~/backup_wordpress

Создаем резервную копии базы данных. Выгружаем данные из «основной» базы данных «wp_site» в файл «dump.sql»:

sudo mysqldump -u root -p wp_site > ~/dump.sql

Подключаемся к интерфейсу командной строки СУБД MySQL:

sudo mysql

Создаем новую базу данных «backup_wp_site» в которую будем выполнять восстановление данных:

CREATE DATABASE backup_wp_site;

Предоставляем все права пользователю «admin_wp_site» на «резервную» базу данных «backup_wp_site»:

GRANT ALL PRIVILEGES ON backup_wp_site.* TO 'admin_wp_site'@'localhost';
\q

Загружаем данные из файла «dump.sql» в базу данных «backup_wp_site»:

sudo mysql -u root -p backup_wp_site < ~/dump.sql

Открываем в текстовом редакторе «nano» файл настройки WordPress:

sudo nano /var/www/html/wp-config.php

В строке содержащей DB_NAME указываем имя «резервной» копии базы данных «backup_wp_site»:

/** Имя базы данных для WordPress */
define( 'DB_NAME', 'backup_wp_site' );

Возобновляем работу веб-сервера Apache 2 и Nginx:

sudo systemctl start apache2.service
sudo systemctl start nginx.service

Проверяем работоспособность сайта. Если всё в порядке (сайт работает с «резервной» копией базы данных успешно), то перенастраиваем сайт на работу с «основной» базой данных начинаем процесс обновления.

Обновление возможно как в автоматизированном режиме (Консоль => Обновления), так и «вручную».

Обновление сайта «вручную»

Скачиваем архив с файлами WordPress:

sudo wget https://ru.wordpress.org/latest-ru_RU.zip

Распаковываем архив с файлами WordPress:

sudo unzip latest-ru_RU.zip

Останавливаем работу веб-сервера.

Копируем файлы «свежей версии» WordPress в директорию сайта:

sudo cp -r wordpress/* /var/www/html

Копируем директорию «/wp-content/uploads» (файлы загруженные пользователями) из «резервной» копии сайта в директорию обновляемого сайта:

sudo cp -r ~/backup_wordpress/wp-content/uploads /var/www/html/wp-content/uploads

Если необходимо, аналогично выполняем копирование «/wp-content/themes» (темы для сайта) и «/wp-content/plugins» (плагины для сайта).

Назначаем владельцем директорий и файлов сайта пользователя «www-data» (системную учетную запись веб-сервера):

sudo find /var/www/html/ -type d -exec chown www-data {} \;
sudo find /var/www/html/ -type f -exec chown www-data {} \;

Возобновляем работу веб-сервера.

Устанавливаем запрет предоставления списка файлов на веб-сервере Apache 2

Открываем в текстовом редакторе «nano» файл настройки веб-сервера Apache 2:

sudo nano /etc/apache2/apache2.conf

Ищем в тексте файла строку:

Options Indexes FollowSymLinks

Для поиска и перехода в текстовом редакторе «nano» можно воспользоваться комбинацией клавиш (Ctrl+Q) и ввести искомую строку.

Заменяем на строку:

Options FollowSymLinks

Измененная часть файла настройки веб-сервера Apache 2 имеет вид:

<Directory /var/www/>
        Options FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

Завершаем работу в текстовом редакторе «nano» (Ctrl+X); сохраняем изменения в файле (Y).

Применяем изменения в файле настройки веб-сервера Apache 2:

sudo systemctl reload apache2.service 

Отправка письма при обновлении профиля пользователя сайта

СMS WordPress может взаимодействовать с почтовым сервером, если почтовый сервер установлен и настроен. Также осуществление отправки сообщений по электронной почте возможно с использованием дополнения (плагина) и добавлением такой функции на сайт.

Замечательную функциональность имеет веб-сервис Яндекс.Коннект (корпоративная платформа для совместной работы и общения), одна из возможностей которого — сервис электронной почты на вашем домене. О том как подключить ваш домен и пользоваться преимуществами платформы подробно изложено на справочных страницах: https://yandex.ru/support/connect/mail.html

После настройки почтового сервиса, устанавливаем на сайт плагин SMTP сервер Яндекс Почты для WordPress, указываем в настройках плагина данные для подключения, а затем добавляем функцию в настройках темы сайта:

Внешний вид => Редактор тем => Функции темы (functions.php)

Добавляем:

/**
 * Отправка письма при обновление профиля пользователя wordpress
 */
function notify_me_by_email( $id ) {
$website = get_bloginfo('wpurl');
$user = get_userdata( $id );
$to = $user->user_email;
$subject = "Обновление профиля на сайте: ".$website."";
$message = "Здравствуйте, " . $user->display_name . ".\nВаш профиль был обновлён.\n\nСпасибо за посещение сайта.\n".$website."";
wp_mail( $to, $subject, $message);
}
add_action( 'profile_update', 'notify_me_by_email', 10, 2);

После сохранения изменений, при обновлении информации в профиле пользователя, будет осуществляться отправка сообщения следующего содержания:

Тема: Обновление профиля на сайте [адрес сайта]
Здравствуйте, [псевдоним пользователя]
Ваш профиль был обновлён.
Спасибо за посещение сайта.
[адрес сайта]

Проверка (тестирование) сайта

Проверка доступности вашего сайта из разных городов и стран: Ping-Admin.Ru

Проверка вашего сайта на уязвимости: Pentest-Tools.com

Проверка на отказоустойчивость (нагрузочное тестирование) вашего сайта: Loaddy.com


Всего Вам хорошего.


Публикации на тему:

https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html

http://wp-masters.ru/otpravka-pisma-pri-obnovlenie-profilya-polzovatelya-wordpress

https://habr.com/ru/post/105954/

https://habr.com/ru/company/ruvds/blog/515004/

ВВЕРХ